package com.dd.cloud.user.DTO.hr;

import com.dd.cloud.user.entity.pres.PresHrDetail;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author Lx
 * @version 1.0
 */
@Data
public class SendPresBodyDTO {
    /**
     * 系统订单号
     */
    private String order_no;

    /**
     * 处方单号
     */
    private String id;

    /**
     * 门诊号
     */
    private String visit_no;

    /**
     * 患者姓名
     */
    private String name;

    /**
     * 患者年龄
     */
    private String age;

    /**
     * 患者性别 1 男 2 女
     */
    private Integer sex;

    /**
     * 就诊机构
     */
    private String organ_name;

    /**
     * 诊室名称
     */
    private String department_name;

    /**
     * 医生名称
     */
    private String doctor_name;

    /**
     * 临床诊断
     */
    private String diagnose;

    /**
     * 处方剂数
     */
    private Integer quantity;

    /**
     * 收货人
     */
    private String consignee;

    /**
     * 收货人电话
     */
    private String consigneeTel;

    /**
     * 收货人地址
     */
    private String consigneeAddr;

    /**
     * 处方总价
     */
    private BigDecimal price;

    /**
     * 处方用法 非必填
     * neifu	内服
     * waiyong	外用
     */
    private String description;

    /**
     * 用量 一天2次
     */
    private String frequency;

    /**
     * 医生签名图片（处方单图） base64 非必填
     */
    private String md5Image;

    /**
     * 加工方式
     * 0: 服务（代煎）
     * 1: 服务（代配）
     * 2: 膏方（袋装）
     * 3: 膏方（瓶装）
     */
    private String procesed;

    /**
     * 订单标签 非必填
     * S:加急
     * E:儿科
     * P:孕产
     * O:外用
     */
    private String tags;

    /**
     * 处方药品列表
     */
    private List<SendPresDrugsDTO> items;

    /**
     * 华润三九系统数据转换发送数据
     *
     * @param detail
     */
    public static SendPresBodyDTO detailToBodyDto(PresHrDetail detail) {
        SendPresBodyDTO body = new SendPresBodyDTO();
        BeanUtils.copyProperties(detail, body);
        body.setOrder_no(detail.getOrderNo());
        body.setDoctor_name(detail.getDoctorName());
        body.setVisit_no(detail.getVisitNo());
        body.setOrgan_name(detail.getOrganName());
        body.setDepartment_name(detail.getDepartmentName());
        return body;
    }
}
